package com.dyface;

import java.io.IOException;
import java.util.Map;

/**
 * 人脸识别测试类
 */
public class Main {
    public static void main(String[] args) {
        FaceRecognitionService 服务 = null;
        try {
            // 创建人脸识别服务实例
            服务 = new FaceRecognitionService();
            
            // 测试1：初始化模型
            System.out.println("=== 测试1：初始化模型 ===");
            String 模型路径 = "C:\\Users\\29790\\Desktop\\dyFace\\face_model.zip";
            服务.初始化模型(模型路径);
            System.out.println("模型初始化成功！\n");

            // 测试2：注册人脸
            System.out.println("=== 测试2：注册人脸 ===");
            // 注册第一个人脸
            服务.注册人脸("C:\\Users\\29790\\Desktop\\c484a8dd649484a7a1167fb96b7adbf.jpg", 1, "朱杰", 模型路径);
            System.out.println("注册人脸1成功：朱杰");

            // 注册第二个人脸
            服务.注册人脸("C:\\Users\\29790\\Desktop\\d4736e42826ca412d585bd0b3d5abcb.jpg", 2, "方叶庆", 模型路径);
            System.out.println("注册人脸2成功：方叶庆");

            // 注册第三个人脸
            服务.注册人脸("C:\\Users\\29790\\Desktop\\0ba3be3cb1ffb7aef7a1b3edc2154c4.jpg", 3, "刘嘉瑶", 模型路径);
            System.out.println("注册人脸3成功：刘嘉瑶");

            // 注册第三个人脸
            服务.注册人脸("C:\\Users\\29790\\Desktop\\3c061c31efdcdb1d8fc175143442665.jpg", 4, "刘昊", 模型路径);
            System.out.println("注册人脸4成功：刘昊\n");

            // 测试3：识别人脸
            System.out.println("=== 测试3：识别人脸 ===");
            double 相似度阈值 = 0.915; // 设置70%的相似度阈值
            
            // 识别已知人脸
            Map<String, Object> 结果1 = 服务.识别人脸("C:\\Users\\29790\\Desktop\\3dd6e83e8aae4f6855869f1ccfe4d8a.png", 模型路径, 相似度阈值);
            System.out.println("识别结果1：");
            System.out.println("ID: " + 结果1.get("ID"));
            System.out.println("姓名: " + 结果1.get("姓名"));
            System.out.println("相似度: " + 结果1.get("相似度"));

            // 识别未知人脸
            Map<String, Object> 结果2 = 服务.识别人脸("C:\\Users\\29790\\Desktop\\c68ea2d3639d8da1d66f290142740f4.jpg", 模型路径, 相似度阈值);
            System.out.println("\n识别结果2：");
            System.out.println("ID: " + 结果2.get("ID"));
            System.out.println("姓名: " + 结果2.get("姓名"));
            System.out.println("相似度: " + 结果2.get("相似度"));

            // 识别未知人脸
            Map<String, Object> 结果3 = 服务.识别人脸("C:\\Users\\29790\\Desktop\\0ba3be3cb1ffb7aef7a1b3edc2154c4.jpg", 模型路径, 相似度阈值);
            System.out.println("\n识别结果3：");
            System.out.println("ID: " + 结果3.get("ID"));
            System.out.println("姓名: " + 结果3.get("姓名"));
            System.out.println("相似度: " + 结果3.get("相似度"));

        } catch (IOException e) {
            System.err.println("发生错误：" + e.getMessage());
            e.printStackTrace();
        } finally {
            if (服务 != null) {
                服务.关闭();
            }
        }
    }
} 